{{tag>programmation compilation java}}

====== GCC, le jeu de compilateurs GNU ======

GCC (GNU Compiler Collection) est une suite de logiciels libres de compilation. On l'utilise dans le monde Linux dès que l'on veut transcrire du code source en langage machine, c'est le plus répandu des compilateurs. La suite gère le C et ses dérivés mais aussi le Java ou encore le Fortran.

Le noyau [[Linux]] dépend dans sa compilation des possibilités pointues de son compilateur C.


===== Installation =====

Il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt://gcc|gcc]]**.

À noter que lorsque l'on installe le paquet virtuel ''build-essential'', il est fait appel à GCC pour la partie compilation. Mais cela ajoute d'autres utilitaires comme [[Make]] qui sont généralement nécessaires à toute compilation plus poussée que le simple bout de code. Il est donc conseillé d'installer directement **[[apt://build-essential|build-essential]]**.

===== Utilisation =====

On peut appeler GCC directement par ligne de commande ou à travers un [[wpfr>Environnement de développement intégré|EDI]]. On pourra se reporter à la [[programmation|page générique sur la programmation]] pour une liste d'EDIs par langage.

Basiquement, la syntaxe est la suivante (exécution dans un [[terminal]]) :
  gcc code.ext -o binaire 
en remplaçant bien sûr ''code.ext'' par le fichier source d'entrée et ''binaire'' par le fichier de sortie souhaité. À défaut de paramètre //output file// (''-o binaire''), gcc créera ''a.out''.

À noter qu'il faut se trouver dans le dossier où se situe le fichier.c. 

Pour une liste exhaustive des multiples options ou optimisations et pour une syntaxe détaillée de GCC, consulter la (longue… plus de 8000 lignes) [[man|page de manuel]] de gcc.


===== Liens =====

  * Site officiel : [[http://gcc.gnu.org|GCC, the GNU Compiler Collection]] [en]
  * Wikipedia : [[wpfr>GNU_Compiler_Collection|Page sur GCC]] [fr]
  * Tutoriel gcc : [[http://www.siteduzero.com/tutoriel-3-31992-compilez-sous-gnu-linux.html|Compilez sous GNU/Linux]] [fr]


----

//Contributeurs : [[utilisateurs:Johndescs]]//